#!/bin/sh

# Copyright (c) 2009 Christopher Keith (chris.keith@gmail.com)
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation
# files (the "Software"), to deal in the Software without
# restriction, including without limitation the rights to use,
# copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following
# conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.

# Demonstrate simple command lookup in C-shell.
# See usage() below for directions for usage.

usage() {
    cat <<-usage_EOF
Usage: $0 [ options ]
    Options:
        -h    this message
        -x    debug (set -x)

Demonstrate simple command lookup. Takes command file input on stdin.
For example: ./dscl.sh < testdata.txt
usage_EOF
}

while getopts hx o
do
    case $o in
        h) usage; exit 0 ;;
        x) set -x ; debug="-x" ;;
    *) usage; exit 2 ;;
    esac
done

reverse() {
    o=
    for p in ${@+"$@"} ; do
         o="$p $o"
    done
    echo "$o"
}

doprint() {
    echo ${@+"$@"}
}

# This causes the whole line to be read in without
# any changes (e.g., stripping white space).
IFS=
while read LINE ; do

    # Pluck off the first character.
    ch=`expr "$LINE" : '\(.\).*'`
    
    # Set it as the command/parameter separator.
    IFS="$ch"
    
    # Let the shell parse the line minus the first character.
    `expr "$LINE" : '.\(.*\)'`
done
